TCP/IP 協定與 Internet 網路:第一章 TCP/IP 協定簡介  上一頁           下一頁

 

翻轉工作室:粘添壽

 

1-4 OSI 參考模型

        早期通訊協定的制定,是各廠商依照自己環境需求建構而成,不同廠家之間的電腦網路無法相互連接,我們稱之為『封閉系統』(Closed System)。隨著電腦的普及化,封閉式的通訊協定漸漸失去競爭力,制定國際化的標準協定就有其必要性。在 1978 『國際標準組織』 (International Standards Organization, ISO) 制定 『開放式系統連結』 (Open System Interconnected, OSI) 通訊協定標準,希望各家廠商依照此標準來製作通訊軟體,使各家廠商電腦得以互相通訊。當時『開放式系統』(Open System)不逕而走,許多廠商開始大量生產 OSI 通訊產品,大家一致認為,OSI 通訊協定必定能整合全世界網路。但好景不長,OSI 所訴求的高品質通訊能力,在當時並沒有特殊的商場需求。簡單的說,它是個美夢,這個美夢要求太過完美,超出當時的需要,也不容易實現它。

一種不受重視的通訊協定正在無形中蠶食著網路市場,它就是 TCP/IP 通訊協定。這種連結性簡單又缺乏保密措施的 TCP/IP 網路,一直都被認為只能應用在專屬網路(如公司、學校、研究機關的網路)上,而且大家認為在公眾網路上使用 TCP/IP 協定,是一件非常危險的事(可靠性和保密性都低)。但是我們提過,Internet 網路是由下而上的發展,客戶總是希望使用連結性高,而且又是免費的通訊軟體(TCP/IP Unix 系統贈送),也不知道怎麼地,網頁通訊和電子郵件系統突然在網路市場上大量風行,這些通訊應用基本上都建構在 TCP/IP 通訊協定上,也使 TCP/IP Unix 系統突然之間大量使用在各種用環境裡。下層的應用環境大多使用 TCP/IP 通訊協定,上層的網路架構也就從下層網路連結而成,因此,TCP/IP 架構的 Internet 網路就在這無預警的情況之下,取代了 OSI 網路。各家電腦廠商(如,IBM)也不得不開始轉向生產TCP/IP 通訊產品。但當 Internet 網路愈加廣泛時,應用環境也愈加嚴謹。譬如,電子商務的要求,不但可靠性要高,安全性也要完整,不容任何的疏忽。因此,工業界大量研發各種安全性技術來彌補 Internet 網路的不足,再加入其它功能層次來完成。如此,Internet 網路又漸漸接近於 OSI 網路。唉!因此我們也可以說,不是 OSI 網路不好,而是時機不對。

目前幾乎沒有人再去探討 OSI 通訊協定,但是 OSI 所制定的七個通訊層次,一直都是表現通訊協定的最佳教材,因此,也稱之為OSI 參考模型』(OSI Reference Model)。也就是說,雖然我們不再談 OSI 通訊協定,但我們可以由 OSI 的基本理念來探討通訊協定在網路中扮演何種角色?它的功能為何?如何來整合各種異質性的電腦?

1-4-1 OSI 協定堆疊

        OSI 將通訊協定的功能區分為下列七個層次:(如圖 1-10)

(1) 第一層:『實體層』(Physical Layer)

主要是定義網路系統中實際的連線,如同軸電纜、絞對線、光纖、無線電波等等。其中還包括定義機械、電氣實際傳輸資料的硬體設備規範,像是纜線規格、接頭尺寸、訊號電壓、資料傳輸時序等等。譬如RS-232RS-499X.21等等。

(2) 第二層:『資料連結層』(Data-Link Layer)

主要是定義如何將傳輸資料分裝成資料封包格式的規格,檢查資料傳輸錯誤的方法、以及執行資料傳送中的同步化問題、錯誤控制、流量控制和鏈路管理等等。以確保經過實體層的資料的可靠性及整合性。譬如EthernetIBM SDLCFDDI等網路連結技術。

(3) 第三層:『網路層』(Network Layer)

主要是定義電腦之間虛擬電路的建立、維持和終止,封包交換的路徑選擇、壅塞疏通及流量控制等,並確保網路第四層以上的工作和第三層以下的實體之間傳輸、交換的技術是互不相關。另外,網路層的特殊功能是規劃路徑協定中的交換功能,譬如IP(Internet Protocol)

(4) 第四層:『傳輸層』(Transport Layer)

主要是定義真實的發送端和接收端或是稱為端點對端點(End to End)連線技術。主要的工作是資料傳送及流程控制等等。其中包含資料封包的傳送線路、傳輸錯誤的偵測和復原,以及資料封包的重新排列,確保所有資料片段都能正確無誤地傳送完成,例如 TCP 協定。

(5) 第五層:『交談層』(Session Layer)

定義不同機器上使用者雙方會議的建立、維持和終止的方法。除了建立許多應用程式之間的對談(Dialogue)外,還提供了一些加強型的服務。譬如網路管理、密碼辨識、簽到簽退、網路監控、對談控制、符記管理(Token Management)及同步管理(Synchronization Management)等。

(6) 第六層:『表現層』(Presentation Layer)

主要是定義應用程式和通訊軟體控制程式之間的資料格式及轉譯。譬如資料的壓縮和還原、網路安全、檔案傳送格式的轉換及語言翻譯等等,目前更著重於資料加密和解密的工作。

(7) 第七層:『應用層』(Application Layer)

OSI模式的最上層,主要定義使用者和通訊軟體之間的介面。最常見的形式就是一般的網路應用程式,功能包括檔案的開啟、關閉、讀取、及複製等。例如電子郵遞系統、資料庫管理系統。

1-10 OSI 參考模式

1-4-2 OSI參考模型範例

        如果僅由上面的敘述,要讀者了解通訊協定裡各種層次的功能,這確實有點困難,我們用圖 1-11 的範例來說明較為明確。圖中使用者在 A 電腦(Win-98)上執行 IE(Internet Explore)瀏覽遠端主機(電腦 B)的網頁(Web Server),它們之間是透過 Internet 網路連接,雙方甚至不知道對方位於何處。我們依照這個範例來說明各個協定層次,在此扮演何種功能。

1-11 WWW網路應用範例

        1-12 為各層次通訊軟體所提供之功能,我們必須強調各個層次都有它的專屬功能,而且層次之間的功能互不相衝突與重疊,這才符合通訊協定的堆疊原理。另一方面,我們只列出各個層次所具備之功能,這些功能可以由不同的網路型態來完成,至於使用何種網路型態,必需依照網路架設環境,以及使用需求而定。以下分別依照範例說明各層次之功能:

1-12 TCP/IP 網路各層次連結功能

(A) 實體層連結功能

基本上,實體層是定義網路上的訊號方式、連線線材、或連線接頭規格。但由這範例中,電腦 A 和電腦 B之間經過了許多網路或網路片段,在每一個網路片段中都有其實體層的標準。以電腦 A 而言,它和 node1 之間必需合乎同一規格,至於 node1 和其它端點之間的規範,並不影響電腦 A 的規範。因此,各個網路片段都可能有獨立的實體層規格,但每一端點都必須負責不同訊號方式的轉換。雖然電腦 A 和電腦 B之間有不同的訊號方式,但隨著各端點訊號的轉送,它們之間的通訊還是可以達成的。簡單的說,實體層就像電話系統的接線,它定義電話線插頭、語音在電話上的傳遞方式,雖然它和手機電話有不同的實體連線方式(手機電話是利用無線電波),但它們之間還是可以通話。

(B) 資料連結層功能

主要定義電腦在網路上如何取得傳輸媒介的方法,以及如何將一串列的訊號發送到網路上。在實體層式定義每一位元如何轉換成電氣訊號,此層是定義如何整合一串訊號成為一個獨立的訊框,再發送到網路,而對方如何辨識一個訊框的起始和結束,並偵測訊號在傳輸當中是否受到外來訊號干擾而發生錯誤。另一方面,電腦網路大多是透過共享傳輸媒介來傳送訊號,電腦之間應採用何種公平競爭的方法,讓各個電腦都有機會取得傳輸媒介的使用權,這些都是資料連結層所必須規範的。如圖 1-12 中,電腦 A 和電腦 B 之間,也許是經過許多網路,譬如,它們之間經過 node1node2node4 node7 等端點,也許在各個端點之間都是不同的網路,對電腦 A 而言,只要能連結到 node1 端點即可,其它端點之間連結,就讓其他網路去負責,與電腦 A 的網路無關。就好像電話系統,只要客戶拿起話機聽到撥號音,便表示話機與交換機之間也連結成功,至於交換機以後的連結,就讓其他網路去負責。因此,資料連結層的功能稱之為『端點對端點的連結』(Node-to-Node Connection)

以上是我們為了說明方便,將資料連結層之間以端點(node)表示,一般資料連結層大多是以區段(Segment)來表示。如以實際範例而言,電腦之間也許透過集線器(Hub) Ethernet 交換器來互相連接,由電腦到集線器,或經由交換器之間連接稱之為『區段』,多個區段之間的連接功能就是由資料連結層負責。

(C) 網路層功能

網路層的主要工作是路徑選擇,譬如,電腦 A 如何在複雜的網路上找到電腦 B。路徑選擇工作必需網路上每一個端點共同來完成,譬如,當資料封包由電腦 A 送到 node1 時,必需由 node1 判斷應該由哪一路徑才可到達電腦 B,如果 node1 找到往 node2 路徑可以到達,便將封包傳送給 node2node2 收到封包後,再由它決定哪一路徑可以到達目的(也許 node3 node4)。雙方通訊經過網路層服務之後,就能連接到目的地,結果是不論雙方距離多遠,兩部電腦就好像在相鄰的桌上。因此稱之為『工作站對工作站連線』(Station-to-Station Connection)。也好像撥電話一樣,當接通電話之後,無論雙方距離多遠,就好像撥給旁邊的電話一樣。

(D) 傳輸層功能

傳輸層的連接型態就好像電話系統中的分支電話一樣,當撥接通某一支電話時,只找到電話位址而並未連接到所欲通話的對象,也許可再撥接分機號碼(或請他人呼叫),才可以連結到通訊對象。傳輸層就好像分機號碼,雙方連結到工作站這是網路層的工作,在每一工作站上也許會有許多使用者或應用程式,譬如,Win-98 ( 1-12) IETelnetftp 通訊程式,它們都可獨立連結到外部網路,也都使用同一個網路層位址,它們之間分辨就如同一支電話上的分機號碼。因此網路層是負責工作站與工作站之間的連接,而傳輸層是負責工作站內使用者對使用者的連接,又稱之為『程序對程序連線』(End-to-End Connection)

(E) 表現層功能

當使用者在電話兩端時(也許在分支電話上),它們之間要對話之前必須決定用什麼語言來對話,這就是表現層所必須定義的。如圖 1-12 中,也許使用者在 IE 瀏覽器上採用商品,當他輸入信用卡號碼時,此時就需利用雙方所認可的加密方式,將信用卡號碼加密,此為表現層所必需負責的工作。

(F) 交談層功能

當傳輸層完成程序間連線之後,表示雙方可以利用此連線來通訊,但非表示雙方隨時在交談之中,交談層負責管理雙方交談的程序,宛如電話系統中,必需決定哪一方可以發話、或雙方可以同時發話等交談次序,如圖 1-13 所示。交談型態可能是一對一模式(一般對話)、一對多模式(三方通訊)或多對多模式(會議電話),交談層必需負責管理發話的次序和傳遞的順序,因此交談層稱為『對談連線』(Dialogue-to-Dialogue)。在圖 1-12 中,也許使用者在瀏覽器上執行會議電話,交談層就必須負責它們之間對談的連接。

1-13 交談層之對談連線

(G) 應用層功能

簡單的說,應用層是依照某種應用需求而制定的通訊協定,譬如圖 1-13 中,電腦 A 和電腦 B 之間需要瀏覽網頁,它們之間針對此需要而必須用 HTTP 協定來傳遞訊息,這 HTTP 協定就是應用層的通訊協定。客戶端(IE)利用 HTTP 協定向伺服器端(Web Server)要求傳輸網頁。

        並非所有網路上的通訊軟體都具備有七層通訊協定,而是視其需要來建構哪些通訊軟體,譬如,早期 Internet 網路並不具有表現層和交談層功能,但隨著環境的需要也漸漸另闢其它層次來負責這些功能。

 

 

<GOTOP>